import { TableUser, User } from '@/api/types';
import { AxiosResponse } from 'axios';

/**
 * 格式化axios的响应格式
 * @param data
 */
export const getRes = <T>(data: AxiosResponse): T => data.data;

/**
 * 格式化用户的数据
 * @param data
 */
export const formatUsers = (data: User[]): TableUser[] =>
  data.map((item) => ({
    name: item.name,
    // phoneNum: item.phoneNum,
    // phoneNum: item.openid,
    phoneNum: item.phoneNum,
    // sno: item.sno,
    // collegeAndMajor: item.qq,
    collegeAndMajor: item.college + ' ' + item.major,
    sex: item.sex,
    direction: item.direction,
    status: getStatusWord(item.status),
    openid: item.openid,
    intro: item.introduce,
    duration: getDuration(item.date),
  }));

/**
 * 获取时间
 * @param startTime
 * @param endTime
 */
const getDuration = (date: string) => {
  date = date || '无';
  return date;
};

/**
 * 根据状态获取对应的数据
 * @param status
 */
const getStatusWord = (status: string): string => {
  // console.log(status);
  switch (status) {
    case '-3':
      return '考核不通过';
    case '-2':
      return '面试不通过';
    case '0':
      return '未报名';
    case '1':
      return '已报名';
    case '2':
      return '已面试';
    case '3':
      return '面试通过';
    case '4':
      return '考核通过';
    default:
      return '未定义';
  }
};

/**
 * 根据数据获取对应的原始数字状态
 * @param status
 */
export const deStatusWord = (status: string): string => {
  switch (status) {
    case '考核不通过':
      return '-3';
    case '面试不通过':
      return '-2';
    case '未报名':
      return '0';
    case '已报名':
      return '1';
    case '已面试':
      return '2';
    case '面试通过':
      return '3';
    case '考核通过':
      return '4';
    default:
      return '1';
  }
};
